import { defHttp } from '/@/utils/http/axios';
import { createVNode } from 'vue';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Modal, message } from 'ant-design-vue';

const API = {
  // 决策数据列表
  list: '/decision/list',
  // 新增决策数据
  add: '/decision/add',
  // 删除决策数据
  delete: '/decision/delete',
  // 修改决策
  modify: '/decision/modify'
}

/**
 * 决策数据列表
 * 文档地址 {@link http://192.168.1.52:8080/api/doc.html#/default/%E5%86%B3%E7%AD%96/listUsingGET_2}
 * @param {int} mn 设备编码
 * @returns
 */
export const decisionListApi = async (params) => {
  return await defHttp.get({ url: API.list, params });
}

/**
 * 删除决策接口
 * 文档地址 {@link http://192.168.1.52:8080/api/doc.html#/default/%E5%86%B3%E7%AD%96/deleteUsingPOST_2}
 * @param {*} id ID
 * @returns
 */
export const decisionDeleteApi = (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定删除当前决策数据?',
      centered: true,
      async onOk() {
        await defHttp.post({ url: API.delete, data }).then((res) => {
          message.success('删除成功');
          resolve(true);
        })
      },
      async onCancel() {
        message.warning('已取消');
        await reject(false);
      },
    });
  })
}

/**
 * 决策信息编辑
 * 文档地址 {@link http://192.168.1.52:8080/api/doc.html#/default/%E5%91%8A%E8%AD%A6/modifyUsingPOST}
 * @param {String} alarmContent 告警描述
 * @param {String} alarmLevel 告警等级
 * @param {String} alarmType 告警类型
 * @param {String} createBy 创建人
 * @param {String} createTime 创建时间
 * @param {String} mn 设备编码
 * @param {String} modifiedBy 修改人
 * @param {String} modifyTime 修改时间
 * @param {String} operator 操作符
 * @param {String} param 参数
 * @param {String} value 值
 * @returns
 */
export const decisionAddApi = (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定提交当前数据?',
      centered: true,
      async onOk() {
        await defHttp.post({ url: API.add, data }).then((res) => {
          resolve(true);
        })
      }, onCancel() {
        message.warning('已取消');
        resolve(false)
      },
    });
  })
}

/**
 * 决策信息编辑
 * 文档地址 {@link http://192.168.1.52:8080/api/doc.html#/default/%E5%91%8A%E8%AD%A6/modifyUsingPOST}
 * @param {String} id 决策ID
 * @param {String} alarmContent 告警描述
 * @param {String} alarmLevel 告警等级
 * @param {String} alarmType 告警类型
 * @param {String} createBy 创建人
 * @param {String} createTime 创建时间
 * @param {String} mn 设备编码
 * @param {String} modifiedBy 修改人
 * @param {String} modifyTime 修改时间
 * @param {String} operator 操作符
 * @param {String} param 参数
 * @param {String} value 值
 * @returns
 */
export const decisionModifyApi = (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定提交当前数据?',
      centered: true,
      async onOk() {
        await defHttp.post({ url: API.modify, data }).then((res) => {
          resolve(true);
        })
      }, onCancel() {
        message.warning('已取消');
        resolve(false)
      },
    });
  })
}